home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************\
- * LESS Written by: Bruce Lowther [71520,2165] *
- * *
- * type <filename> | less <scoll length> *
- * *
- * Less is similar to More in MS-dos, but the scroll *
- * length can be changed by entering the prefered *
- * scroll length on the command line. *
- * *
- * Example: c:\>type less.c | less 10 *
- * *
- * This program is an example of combinations of *
- * the stdin stream, CON stream, and command line *
- * parameters. If you use this program, or find it *
- * useful then yell "Thanks!" real loud, or drop me *
- * mail. I would also like some constructive crit., *
- * if you have any. *
- \*****************************************************/
-
- #include <stdio.h> /* for fopen(), getchar() and getc() */
- #include <stdlib.h> /* for atoi() */
- #define SMALL 15 /* value of scroll if none is specified */
-
- main (int argc,char *argv[]) /* gets the command line parameters */
- {
- FILE *kbd; /* file used when CON is opened */
- int counter = 1, /* the line number counter */
- letter, /* character from stdin */
- len; /* scroll length */
-
-
- if (argc == 1) /* if no command line parameter,
- set to standard scroll */
- len = SMALL;
- else /* else, take command line,
- convert it to integer and use
- it */
- len = atoi(argv[1]);
-
- while ((letter = getchar()) != EOF) /* loop until EOF on stdin. */
- {
- if (counter >= len) /* if counter has reached len,
- then stop, and get input from
- the CON (keyboard) */
- {
- printf("\n%d[LESS]", len);
- kbd = fopen("CON","r"); /* open the CON, for read only
- note that stdin has not been
- closed. */
- getc(kbd); /* get a character from the
- keyboard */
- fclose (kbd); /* close keyboard so input can
- come from stdin once again. */
- counter = 1;
- }
- if (letter == '\n') counter++; /* increment counter at each
- newline character '\n' */
- putchar(letter); /* put the next character onto
- stdout. */
- }
- }
-
-